1. Field of the Invention
The present invention relates to a client/server computer system. In particular, the present invention relates to a communication control apparatus for controlling message exchange in a client/server computer system having a front-end process application (client application) that is disposed in a client machine and a back-end process application (server application) that is disposed in a server machine and a client/server system thereof.
2. Description of the Related Art
Personal-computer-based LANs have been widely used as information systems for companies. In addition, client/server systems, in particular, client/server type database systems have become popular.
The client/server type database systems have various advantages over host type centralized database systems. In a multiple vendor environment, database applications can be accomplished. Since the server side and client side can share a process, the performance is high. The end users can develop applications suitable for their job using 4 GL (fourth generation language). The users can edit the results retrieved from the database server using commercial software (packaged software), such as spreadsheet software, through middle-ware. When a distributed database is constructed, data can be distributed. With a mirror function, the loss of data due to the system going down can be minimized. Since a low cost personal computer can be used as a client machine, the total cost of the system can be reduced. When a personal computer is used for a client machine that performs a main job, the efficiency of the job can be improved.
In the client/server type database system, database access types of a database server (computer) machine (referred to as a database server) by a client application mounted on a client machine can be categorized as RDA (Remote Database Access) and RPC (Remote Procedure Call).
In the RDA type of database access, a client application accesses a database using the RDA protocol established by the ISO (International Organization for Standardization). In this case, the client application directly sends a structured query language (SQL) statement that is received through a network to a DBMS (Data Base Management System). The results retrieved from the DBMS is sent to the client application by middle-ware (referred to as the RDA server). Thus, the designer of the client application should know the construction of the database on the database server.
On the other hand, in the RPC type of database access, a server application mounted on the database server is called as a subroutine through the network so as to execute a part (procedure) of a job process. The results are received from the server application, and thereby a distributed application is executed. When the RPC function is used, a harmoniously distributed process can be easily accomplished. In the harmoniously distributed process, one transaction process is distributed into a client machine and one or a plurality of database servers. Thus, with a plurality of UNIX database servers that are relatively smaller machines, a large OLTP (On Line Transaction Process) system can be constructed.
First, a problem of a C/S database system (client/server type database system) in which a client application accesses the database server corresponding to the RDA will be described.
In this type, the developer of the client application should know the construction of the database on the database server. Thus, the database manager who designs the database and the designer who designs the client application should work in liaison with each other.
In addition, the content of the client application mutually affects the construction of the database. Thus, when the manager of the database changes the construction of the database, the manager should consider the influence of the change against the existing client application. Consequently, the database manager should be familiar with the content of the client application.
In such a construction, when the construction of the database is changed (for example, the database is divided or data position is changed), the client application should be inevitably modified.
FIGS. 1A and 1B are an example of a change of the construction of the database. In this case, since the number of items of a table 2 (TABLE1) of a database DB1 of a database server 1 is increased due to an increase of transactions, the access performance is deteriorated. To improve the access performance, as shown in FIG. 1B, the table 2(TABLE1) is divided into a table 3 (TABLE1-1) and a table 4 (TABLE1-2). Thus, a part of a client application 7 on a client machine 6 is corrected from a content (INSERT TABLE1) shown in FIG. 1A to a content (INSERT TABLE1-1, INSERT TABLE1-2) shown in FIG. 1B. Thus, the correcting work results in an increase of the cost. In addition, the client machine cannot be temporarily used.
In addition, the manager of the database server should preform a modification work such as dispersion of load of the database and change of data management unit when the client application is changed. Thus, the period for the modification work available for the manager of the database server is restricted.
To directly open the construction of the table of the database to the user, the table of the database should be designed in consideration of both the use state of the data of the user and the management state of the database. Thus, the table design is very difficult to construct in the system.
As shown in FIG. 2, when an order process is performed in the RDA, a client application 11 requests a database server 20 to perform a process such as a customer check, an inventory check, an inventory update, or an order registration with an SQL statement. Each SQL statement is issued after a response to the former SQL statement has been received from the database server 20. Thus, while the order process is being executed, data is repeatedly exchanged between the client machine 10 and the database sever 20. Consequently, the traffic amount of the network may increases, thereby decreasing the process performance of the system.
In the RDA, a request of an SQL statement from the client application is immediately sent to the DBMS through the RDA server. Thus, even if the system manager establishes the following rules (1) to (4) as database operation rules, he cannot substantially manage/control the operation of the system.
(1) restricts access time (to prohibit the user from accessing a large amount of data and from leaving his seat while accessing the data).
(2) restricts access time zone (to allow the manager to have maintenance time for the database).
(3) controls overload (to prohibit the user to access the database when the database server is overloaded).
(4) controls priority (to dynamically control the execution of each service corresponding to the priority).
Other than the process request method using the SQL statement for accessing the client application corresponding to the RDA, a so-called stored procedure call method is available. In the stored procedure call method, a sequence of transaction processes (procedures) are pre-registered in the database server. By calling a procedure, a predetermined database process is performed. However, in the present situation, since the client application should generate a job logic by accessing the database with the SQL statement and using the stored procedure call, the job logic becomes complicated, thereby preventing the productivity from being improved.
The security function for accessing the database of the existing DBMS is performed for each table and for each column (item). Thus, when each item of data is open to the user, as shown in FIG. 3, the designation of the access right becomes complicated. When a job system is constructed, the access right of the database is usually designated for each user (end user, job manager, etc.). Thus, when the same user works as an end user and a job manager, the access right should be changed for each item of the user. However, the security designator may designate the same user the same right for all items of the same user.
Next, a so-called C/S application type database system will be described. In this database system, applications are categorized as a client application that performs input/output processes for the user interface and a server application that executes job logic for database access. The client application and the server application are mounted on a client machine and a database server, respectively. The client application calls the server application corresponding to the RPC so as to execute the job process. This C/S application type database system has the following problems.
When applications are developed, the format of data exchanged between both the applications, the process time of the server application, and the operation time zone of the server application should be considered.
As the above-described process type, real communication and delayed communication are known. In the real communication, when the server application has completed a process requested by the client application, the client application is informed of the completion of the process.
On the other hand, in the delayed communication, when a message (data) received from the client application is stored without need to wait until the process of the server application has been completed, the client application is informed of the completion of the process.
Thus, when the client application performs the collecting type process that collects data for the sever application on a real time communication basis, if the process time of the server application becomes very long, the reply time for the client application is delayed. In this case, the collecting type process should be changed from "real communication" to "delayed communication". Thus, the development of both the applications has a close relationship to each other. Consequently, it is very difficult to independently develop them. In addition, since the change of the process type affects the logic of the application, both the applications should be changed in many situations, thereby deteriorating the productivity.
Since the client application performs a process for the user interface, the attribute (type) of data to be processed should be suitable for a screen process. On the other hand, since the server application accesses the database and edits the data thereof, the application should be preferably processed with attributes suitable for such processes. Thus, when data is exchanged between the client application and the server application, the data attribute changing process is required on either side.
This process results in an increase of the work load, thereby lowering the productivity of the application.
As shown in FIG. 4A, the operation test for an application that is newly developed cannot be performed unless both the client application 31 and the server application 32 are provided. For a test in the RPC, as shown in FIGS. 4B and 4C, a driver 36 and a stub 37 should be provided.
In other words, when only the server application 32 is tested, a driver that issues a request to the server application 32 instead of the client application 31 should be provided (FIG. 4B). On the other hand, when only the client application 31 is tested, the stub 37 that receives a request from the client application 31 instead of the server application 32 should be provided (FIG. 4C).
On the other hand, an original test supporting tool may be used. In this case, the operation of the tool should be well known.
In addition, since the client application and the server application are in liaison with each other through a TP monitor, they should be generated corresponding to an API (Application Programming Interface) of the TP monitor. Thus, in this situation, it is impossible to construct the C/S application type database system corresponding to the RPC using commercial package software (such as spreadsheet software, database, or access software) mounted on a PC (personal computer) as a client application.
In addition, in the existing C/S application type database system, the server application designated by the client application corresponding to the RPC is operated only in the same executing environment on the database server. In other words, the same server application can be used in one job process. Thus, when the existing server application is used for a new job process, the name should be changed. Consequently, various jobs involving the name change are required.
In other words, as shown in FIG. 5, in a system that is operating, a client application 41 calls a server application A. Thereafter, so as to extend the job, using the server application A, a new client application 42 is developed (1). Since the new job process becomes another executing environment, the server application A should be managed by a server application A' with another name (2). However, in this case, when the server application A is corrected due to an occurrence of a trouble, not only the server application A, but the server application A' should be corrected (3). In other words, the same server application A should be dually managed, thereby increasing the maintenance work.